草庐IT

c++ - findHomography、getPerspectiveTransform 和 getAffineTransform

全部标签

c - 为什么编译器创建一个变量 "twice"?

我知道这是一个更“沉重”的问题,但我认为它也很有趣。它是ofmypreviousquestionsaboutcompilerfunctions的一部分,但回过头来我解释得非常糟糕,许多人只回答了我的第一个问题,所以它是:因此,如果我的知识是正确的,现代Windows系统使用分页作为切换任务并确保每个任务在内存中都有适当位置的方式。所以,每个进程都有自己的位置,从0开始。当多任务生效时,内核必须将所有重要的寄存器保存到任务的堆栈中,我相信这比保存当前堆栈指针、更改页面条目以切换到另一个进程的物理地址空间、加载新进程堆栈指针,弹出保存的寄存器并通过调用弹出的指令指针地址继续。由于这个很好的

c++ - 数组参数的完整性检查(strlen 等)

无法通过搜索找到答案(可能是错误的关键字),所以我正在创建一个新问题。您如何处理带有字符串参数的dll导出方法的参数检查。一般规则是永远不会信任用户,但实际上呢?例如:intfoo(constchar*bar){if(!bar)returnFAIL;???}假设库的用户像这样调用我们的函数:foo(reinterpret_cast(0x00000008));这应该首先导致AV:strlen(bar);有没有办法防止这种情况发生?处理错误的正确方法?我知道IsBadReadPtr是不可能的,因为这个函数属于危险类,永远不能使用。但是,有什么办法可以解决这个问题吗?我不能__declpec

c - gcc 4.4 与 Visual C++ 2008

我有点困惑,这里需要一些C/C++大师。如果它是C,并且原则上语言不能改变,那么为什么有些程序运行在VisualC++而不是gcc上???我正在使用VisualC++2008和gcc4.4.1并尝试编译一些非常古老的代码(1996)。它在某种程度上适用于VisualC++(WindowsXP),但在gcc(Ubuntu9.10)中完全失败。令我警觉的是,如果它是C/C++,那么编译器应该不是问题。有什么帮助吗?更新:这是代码,http://www.ece.unh.edu/robots/cmacdemo.c 最佳答案 最明显的问题是:

c++ - 写入共享内存的频率限制?

单线程应用程序(C++)连续锁定、写入和解锁共享内存-每秒四次(该循环以编程方式设置为每秒运行一次,循环中有4次写入,没有读)。EnterCriticalSection(cs);WriteToSharedMem();LeaveCriticalSection(cs);另一个应用程序(C)将每隔分钟访问一次此共享内存。以这种速度写入共享内存有什么问题吗?WindowsXPC++ 最佳答案 您给出的速率(每秒四次)不会造成问题,但是youcan'tusecriticalsectionsacrossprocesses.您需要一个内核级同步对

c - 尝试从命令行获取星号 * 作为对 main 的输入

我正在尝试从命令行向我的主要功能发送输入。然后将输入发送到函数checkNum等。intmain(intargc,char*argv[]){intx=checkNum(argv[1]);inty=checkNum(argv[3]);into=checkOP(argv[2]);…}它应该是一个计算器,所以例如在我写的命令行中:program.exe4+2它会给我答案6(不包括此代码)。问题是当我想乘法并输入例如program.exe3*4它似乎创建了一个指针(或其他东西,不太确定)而不是给我指向char'*'的char指针。问题是我能否让输入“*”的行为与我键入“+”时的行为相同?编辑:

c++ - Linux 程序是否像 Windows 程序一样可移植?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion也许这是一个愚蠢的问题,但这是从人们在这里和那里的谈话中学到的问题之一,如果专业人士正确描述了情况,我会很高兴。谈到标准台式计算机,我看到Windows程序尽可能地便携。我可以用静态库链接编译任何32位软件,然后将该软件放在闪存驱动器上,它可以在世界上任何32位或64位计算机上运行。我有超过10年的程序,它们仍然可以正常工作。现在我也在编写linux,但是我在编写linux程序时脑子里没有那个画面。我总是

c - 如何使用c将文件从linux复制到windows服务器

我必须创建一个将在Linux服务器上运行的C程序。它将从Oracle数据库获取信息,创建一个本地文件,然后将该文件复制到Windows服务器。我知道如何在Linux服务器上创建本地文件。但是从C拷贝到windowsserver有什么方法呢? 最佳答案 先挂载WindowsShare,然后在挂载的目录下创建文件。 关于c-如何使用c将文件从linux复制到windows服务器,我们在StackOverflow上找到一个类似的问题: https://stackov

c - MPICH:如何发布_name 以便客户端应用程序可以查找_name 呢?

在Windows(1.4.1p1)中使用MPICH学习MPI时,我发现了一些示例代码here.最初,当我运行服务器时,我必须复制生成的port_name并用它启动客户端。这样,客户端就可以连接到服务器了。我将其修改为在服务器中包含MPI_Publish_name()。在启动名称为aaaa的服务器后,我启动了失败的客户端MPI_Lookup_name()withInvalidservicename(seeMPI_Publish_name),errorstack:MPID_NS_Lookup(87):Lookupfailedforservicenameaaaa以下是代码片段:服务器.cMP

c - 用 C 编写了一个 hello world 程序,但现在我无法终止该进程

这个问题在这里已经有了答案:RunningmyC++codegivesmeablankconsole(1个回答)关闭6年前。我编写了一个简单的helloworld程序,它应该将hello打印到控制台。我使用gcc编译它。一旦我尝试运行.exe文件,它就会在我的鼠标指针旁边创建一个蓝色的小旋转器,并且它不会消失。我试图使用taskkill终止进程(我在windows7上),但它不起作用。也许代码中存在错误?我尝试过的事情:从Windows任务管理器结束进程taskkill/IMhelloworld.exe/ftl;dr一个helloworld程序即使使用taskkill也不会退出#inc

c - 安全移除安装的驱动器

我有一个应用程序可以通过SATA接口(interface)将文件写入格式化为NTFS的外部驱动器。在关闭应用程序之前,我确保使用FlushFileBuffers为每个文件刷新所有内容(即CreateFile、FlushFileBuffers、CloseHandle)。然后我卸下驱动器,而不是先卸载它!将驱动器重新插入PC机时,这似乎工作正常。但是,将其插入OSX时,操作系统似乎找不到任何文件,除非驱动器已正确卸载。磁盘中可能缺少什么导致OSX找不到任何东西,有没有一种方法可以在不卸载驱动器的情况下刷新数据?编辑:使用exfat我遇到了“脏”驱动器在重新安装时不可写的问题。